Computer-aided design (CAD) software allows a user to construct and manipulate complex three-dimensional (3D) models. A number of different modeling techniques can be used to create a 3D model. One such technique is a solid modeling technique, which provides for topological 3D models where the 3D model is a collection of interconnected topological entities (e.g., vertices, edges, and faces). The topological entities have corresponding supporting geometrical entities (e.g., points, trimmed curves, and trimmed surfaces). The trimmed surfaces correspond to topological faces bounded by edges. Hereinafter, the terms vertex, edge, and face will be used interchangeably with their respective, corresponding geometric entities.
A design engineer is a typical user of a 3D CAD system. The design engineer designs physical and aesthetic aspects of 3D models, and is skilled in 3D modeling techniques. While creating a CAD model the design engineer needs to select various entities using a cursor-controlled pointing device such as a mouse. To select an entity, generally, the CAD software determines which entities occupy an area beneath and surrounding a cursor position using a selection vector having a certain diameter and normal to the computer screen. The diameter is large enough to enable the design engineer to select an entity without having to position the pointing device precisely over the entity. Visible entities that occupy the area beneath and surrounding the cursor position may then be ordered (e.g., in a list data structure) according to the z-value of the respective entities. The visible entity that is the closest to the user as indicated by the entity's z-value becomes the selected entity. Hereinafter the area beneath and surrounding a cursor location or a touch location will also be referred to as a selection zone and a selection area.
Often entities are small and difficult to select due to the size of the entities with respect to the modeling space. Additionally, the design engineer may want to select a vertex, an edge, or a face, all of which may occupy a small area on the computer screen making selection of any one of the entities very difficult.
A challenge CAD system designers confront is enabling the selection of edges and vertices because an edge may be only one or two pixels wide and a vertex may be a single pixel on the computer screen. To compensate for the generally smaller size of edges and vertices when compared with the size of faces, state-of-the-art CAD software selection methods first order entities in the selection area that are visible according to the entities respective z-depth; then, the top-most entities with respect to their z-depth being closer to the viewer are re-ordered so, despite respective z-values, edges and vertices are given higher selection priorities than faces, and therefore, are ordered accordingly before face entities. Thus, if the visible entities in the selection area are one edge and two faces, the edge becomes the selected entity. Essentially, the selection method assumes the user wants to select the entity that is typically more difficult to select. This method is acceptable until a situation arises in which the design engineer wants to select a small face that is surrounded by the higher-priority edges and vertices. For large faces, the user simply moves the cursor so an edge or a vertex entity is no longer in the selection zone. However, for some faces the display of the face may only be a few pixels in size in one or more dimensions, which precludes the user from selecting the face when edges are given priority in the selection order. To select the small face, the user may need to zoom into the modeling space, use an in-place magnification technique (meaning a magnifying glass function increases the apparent size of entities within a region of the display), or select from a list of entities occupying the selection zone.
A zoom approach to selecting small objects on a computer screen may display a magnifying glass icon or a +/−symbol to enable the user to zoom into a portion of the modeling space to magnify one or more objects occupying that space. As an example, when the object is a small face, zooming in on the object enables the user to more easily move his or her mouse over the small face where the selection area will not intersect an edge or a vertex of the small face. A disadvantage of this zoom approach is that designing a model while continually zooming in on and out of objects in the model is an inefficient, a cumbersome, and a time-consuming way to design a CAD model. The change in view can also be disorienting to the user and interrupt the user's desired workflow of selecting entities by interjecting zoom in and zoom out steps in the middle of the workflow.
Another approach to selecting an object that is small, obscured, or otherwise hard to select is to display a list of entities situated in the selection zone. SOLIDWORKS® 2014 software, available from Dassault Systemes SolidWorks Corporation of Waltham, Mass., displays such a list and enables a user to remove from the display screen items selected from the list making it easier to discern an entity of interest. The SOLIDWORKS® software user may also select a particular item from the list. Further, as is described in U.S. Pat. No. 7,694,238 to Gibson et al, a user may simply pick an object directly to remove that object and be able to pick another object nearby or beneath the object that was removed.
The selection of entities is one of the most common actions a user performs when working on a CAD system and on other computer systems as well. A method incorporated into a CAD system that makes the task of selecting an object less cumbersome and time consuming would enhance the capabilities of such a CAD system.